1. Field
Embodiments relate to the receiving of buffer credits by a plurality of channels of one or more host computational devices for transmitting data to a control unit.
2. Background
Input/output (I/O) operations may be used to transfer data between memory and I/O devices of an I/O processing system. For example, data may be written from memory to one or more I/O devices, and data may be read from one or more I/O devices to memory by executing I/O operations. To facilitate processing of I/O operations, an I/O subsystem of the I/O processing system may be employed. The I/O subsystem is coupled to main memory and the I/O devices of the I/O processing system and directs the flow of information between memory and the I/O devices. One example of an I/O subsystem is a channel subsystem. The channel subsystem uses channel paths as communications media. Each channel path includes a channel coupled to a control unit, the control unit being further coupled to one or more I/O devices.
In certain mechanisms, the channel subsystem and I/O device may operate in a transport mode that supports the transfer of one or more command control blocks to transfer data between the I/O devices and memory. A transport control word (TCW) may specify one or more I/O commands to be executed. For commands initiating certain I/O operations, the TCW designates memory areas associated with the operation, the action to be taken whenever a transfer to or from the area is completed, and other options.
In certain situations, the control unit may be included in a storage device. In other situations, the control unit may be included in a storage controller in which a storage management application that executes in the storage controller may manage a plurality of storage devices, such as disk drives, tape drives, flash drives, etc., that are coupled to the storage controller. The channels to communicate with the control unit may be used by a plurality of hosts that may access data stored in the storage devices.
Fibre Channel refers to an integrated set of architectural standards for data transfer being developed by the American National Standards Institute. Fibre Connection (FICON) is a protocol of the fibre channel architecture and may also be referred to by the formal name of FC-SB5. Further details of FC-SB5 may be found in the publication, “FIBRE CHANNEL Single-Byte Command Code Sets Mapping Protocol-5 (FC-SB-5)”, Rev. 2.0, published by the American National Standards Institute on Mar. 26, 2013.
A channel is a direct or a switched point-to-point connection between communicating devices. In the Fibre Channel architecture, a FICON channel may perform the functions specified by FC-SB5 to provide access to Input/Output (I/O) devices by means of control units or emulated control units. FICON channels may rely on packet switching for transferring data between communicating devices.
In certain situations, data transfers sent to I/O devices may lead to data overflow at their respective control units if data is transferred at a rate that exceeds the ability of the control units to process the data.
Certain mechanisms provide a data transfer control feature that allows the control unit to specify a number and/or size of first-transfer buffers available to the channel. In certain situations, the data transfer control feature defines a first-transfer-buffer size (FTBS) value specified by the control unit, and a first-transfer-buffer credits (FTBC) value. FTBC may also be referred to as buffer credit. The FTBS and FTBC are stored in the channel and used to limit the amount of data that can be transferred to the control unit in a first data transfer message. In other situations, the control unit can specify or dynamically modify the FTBC via a response message sent to the channel in response to receiving an I/O command or commands and/or executing an I/O operation. Support for the data transfer control feature may be established during a link initialization (e.g., indicated in Process Login request and response messages) between the channel and the control unit.
High performance FICON (zHPF) Extended Distance II is an enhanced buffer management function to improve performance of FICON Transport Mode writes that are greater than a first burst size (e.g. 64 KB) at long distances and to prevent low buffer conditions in the storage controller ports from causing storage area network (SAN) congestion. It is an improvement over zHPF Extended Distance that provided support for disabled first transfer ready.
US patent publication 2014/0359,168 describes mechanisms for performing I/O operation at a host computer system configured for communication with a control unit. A transport mode command message is sent from a channel subsystem to the control unit, the command message including a command for data to be transferred to an I/O device controlled by the control unit. A data transfer message is sent to the control unit, the data transfer message having an amount of the data to be transferred, the amount of the data being less than or equal to a maximum amount of data, the maximum amount of data corresponding to a number of buffers associated with the control unit and a size of each of the number of buffers, the number and the size indicated by a value maintained in the host computer system. In certain mechanism, the channel includes in the local channel memory information regarding the size of available buffers associated with the control unit to which the channel is connected. The channel may also include information regarding the available buffer credits for the control unit. For example, prior to initiating the I/O operation, e.g., during a login or initialization process, the control unit sends buffer size and/or buffer credit information to the channel.
U.S. Pat. No. 8,918,542 describes mechanisms for performing an input/output (I/O) operation initiated by an I/O operation instruction at a host computer system configured for communication with a control unit. The control unit receives a transport mode command message from a channel subsystem of the host computer system, where the command message includes a command for data to be transferred between the host computer system and an I/O device controlled by the control unit. A command retry message is sent to the channel subsystem, the command retry message including a request that the command message be resent to the control unit and a reason code indicating a reason for the request.
Therefore, U.S. Pat. No. 8,918,542 and US publication 2014/0359,168 provide details of command retries and transfer buffer credits as may be implemented in certain versions of FICON.